<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 考虑以下代码
        let obj = {
            name:'mikaisa'
        }
        // console.log(obj.location.city);//报错，因为obj.location是undefined，你再.city肯定出错

        // 但是问题来了，有的时候我们可能也不知道对象里有没有这个属性啊，这个对象可能是后端返回给我们的，有时候有有时候没有。它老是报错可不行啊，别急，?.就是干这个的

        // ?.可以智能能读取后面的属性，有则读取，无则返回undefined，不会报错
        console.log(obj?.location?.city);//undefined

        // 结合上一节的空值合并运算符，我们可以做到如果读取不到就取固定值的功能
        console.log(obj?.location?.city ?? '未设置地区城市');
    </script>
</body>
</html>